<?php

namespace Xin\EasyQueue\Contracts;

interface QueueInfo
{
    /**
     * 获取等待中的任务数据
     * @param int $start
     * @param int $end
     * @return array
     */
    public function waiting(int $start = 0, int $end = -1): array;

    /**
     * 获取等待中的队列名称
     * @return string
     */
    public function waitingName(): string;

    /**
     * 获取等待中的队列数量
     * @return int
     */
    public function waitingCount(): int;

    /**
     * 获取延迟中的任务数据
     * @param int $start
     * @param int $end
     * @return array
     */
    public function delayed(int $start = 0, int $end = -1): array;

    /**
     * 获取延迟中的队列名称
     * @return string
     */
    public function delayedName(): string;

    /**
     * 获取延迟中的队列数量
     * @return int
     */
    public function delayedCount(): int;
}
